package com.sunchen.asc.application.config;

import com.sunchen.asc.service.common.ResultResponse;
import com.sunchen.asc.service.common.ResultUtil;
import org.springframework.http.HttpStatus;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.context.support.DefaultMessageSourceResolvable;

import java.util.Objects;
import java.util.stream.Collectors;
//
//@RestControllerAdvice
//public class AdviceController {
//
//    /**
//     * 拦截表单参数校验
//     */
//    @ResponseStatus(HttpStatus.OK)
//    @ExceptionHandler({BindException.class})
//    public ResultResponse bindException(BindException e) {
//        BindingResult bindingResult = e.getBindingResult();
//        return ResultUtil.res(,(Objects.requireNonNull(bindingResult.getFieldError())).getDefaultMessage());
//    }
//
//    /**
//     * 拦截JSON参数校验
//     */
//    @ResponseStatus(HttpStatus.OK)
//    @ExceptionHandler(MethodArgumentNotValidException.class)
//    public ResultResponse bindException(MethodArgumentNotValidException e) {
//        BindingResult bindingResult = e.getBindingResult();
//        FieldError fieldError = bindingResult.getFieldError();
//        if(fieldError != null){
//            return ResultUtil.res(,fieldError.getDefaultMessage());
//        }else {
//            String errorMsg = bindingResult.getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining(", "));
//            return ResultUtil.res(,errorMsg);
//        }
//
//    }
//}
